Capa de transporte

Multiplex y Demultiplex

Multiplex en la capa de transporte significa que los nodos en una red tienen la habilidad de dirigir el tráfico a distintos servicios receptores.
Demultiplex es el mismo concepto pero como receptor, recibiendo el tráfico dirigido a un nodo y dirigiéndolo a los servicios correspondientes.

Esto se realiza a través de puertos. Un puerto es un número de 16bit usado para dirigir el tráfico a servicios específicos de un computador.


TCP Segment

TCP acepta información, la fragmenta y agrega un TCP Header así creando un TCP Segment.
Este es encapsulado en el datagrama IP e intercambiado.
En la jerga se usa 'paquete TCP' pero para ser más precisos:

El segmento TCP consta de una sección de encabezado y una de data. También posee 10 campos obligatorios y el campo opcional de opciones.


Banderas TCP

O puntos de control

En el encabezado TCP aparecen en el orden que los plantearé, un valor de 1 es 'activo'.

1. URG

Urgent. El segmento se considera urgente, habrá más información en el segmento Urgent del paquete.

2. ACK

Acknowledged. Es básicamente un flag de 'recibido'

3. PSH

Push. Indica que el equipo transmisor quiere empujar la información del buffer a la aplicación lo más pronto posible.

4. RST

Reset. Uno de los puntos de la conexión no ha logrado recuperarse del haber perdido segmentos o haberlos recibido de forma errónea. De esta forma se resetea la conexión

5. SYN

Synchronize. Se usa al principio de la conexión para asegurar que la conexión está establecida y se mantenga así.

6. FIN

Finish. Cuando se coloca en 1, se indica que este es el último paquete.

Three-way handshake

El proceso es básicamente el siguiente:


TCP Socket

Instancia del end-point en una posible conexión TCP.
Requieren que un programa los instancie.


UDP

User Datagram Protocol.

A diferencia de TCP, que es orientada a conexión, UDP no lo es.
Esto significa que no establece conexión persistente entre emisor y receptor. Esto lo hace más rápido y eficiente en ciertos casos pero sacrifica fiabilidad y control de flujo que ofrece TCP.

En general:
Baja latencia pero no necesitan confirmación de recepción por lo que pueden duplicarse, perderse y llegar desordenados y son útil para streaming, juegos o transmisiones multicast.

Los pasos de uso son:

  1. Emisión
  2. Encapsulación
  3. Recepción
  4. Procesamiento

Los estados y procesos son más simples en UDP por la no necesidad de una conexión formal. Sin embargo tiene algunos conceptos clave:

El ejemplo más común es los juegos en linea porque la prioridad es la baja latencia. El usar UDP para los movimientos del jugador permite una actualización rápida de los mismos pero si se pierde un paquete no es crítico porque llegará un nuevo paquete rápidamente con la información actualizada.


Firewalls

Dispositivo que bloquea tráfico según ciertos criterios. Puede ser físico o no.
Pueden operar en distintas capas de la red, por lo que podriamos colocar firewalls en la capa de aplicación para monitorear el tráfico de las aplicaciones o podriamos colocar un firewall que bloquee rangos de ip.
El uso más común es colocarlos en la capa de transporte para bloquear conexiones y tráfico a ciertos puertos, algo así como policia fronteriza.


Capa de Aplicación

En la capa de aplicación es donde las aplicaciones transmiten su información.
En general, hay distintos protocolos para cada cosa pero al final del día todas hablan más o menos lo mismo.
Por ejemplo para comunicar información de un servidor web podemos tener Apache, Nginx o IIS pero todos hablarán el mismo protocolo. Lo mismo con FTP, podemos tener FileZilla o WinSCP pero ambos utilizarán el mismo protocolo FTP y probablemente el mismo puerto 21 y/o 22.

En el modelo OSI, se agregan dos capas más a la capa de aplicación: la capa de sesión y la de presentación.

Capa de presentación

La capa de presentación traduce los datos entre el formato de red y el formato de la aplicación o viceversa. Se ocupa tanto de la transformación y codificación como del cifrado y descifrado.
Ejemplos:

Capa de sesión

La capa de sesión gestiona y controla las conexiones entre dos dispositivos (sesiones). También maneja la sincronización y el dialogo entre aplicaciones. Gestiona la recuperación en casos de interrupciones y coordina la retransmisión de los datos si es necesario.
Ejemplos: